package com.iocup.keybastion.configuration;

import lombok.Getter;
import lombok.Setter;

/**
 * @author xyjxust
 * @create 2022/3/4 15:33
 **/
@Setter
@Getter
public class TokenProperties {
    /**
     * token类型
     */
    private String tokenType = "";
    /**
     * 是否允许同一账号并发登录 (为true时允许一起登录, 为false时新登录挤掉旧登录)
     */
    private boolean concurrent = false;
    /**
     * 在多人登录同一账号时，是否共用一个token (为true时所有登录共用一个token, 为false时每次登录新建一个token)
     */
    private boolean share = false;
    /**
     * 检测到续签的将要过期的间隔时间   默认为5分钟
     */
    private int renewValiditySeconds = 5 * 60;
    /**
     * 是否生成刷新token 默认不生成刷新token，true时将根据刷新token进行续签token
     */
    private boolean refreshToken = false;
    /**
     * 刷新token是否继续使用现有的过期token
     */
    private boolean refreshUseOldToken = false;
    /**
     * 是否自动进行刷新
     */
    private boolean autoRefreshToken = false;
    /**
     * token校验时长：  单位秒，默认24小时
     */
    private int tokenValiditySeconds = 86400;
    /**
     * token刷新校验时长，单位秒，默认30天
     */
    private int refreshTokenValiditySeconds = 2592000;

    /**
     * 配置不同设备端可以用不同的失效期
     */
    private DeviceProperties matchDevice = new DeviceProperties();
    /**
     * token写入cookie配置
     */
    private CookieProperties token2Cookie = new CookieProperties();


}
